package cheme.Interpreter.AST.Interfaces;


public interface IAstExpression extends IAstStatement, ISubject, IObserver
{
	enum ValueationState {Unknown, Calculated, Evaluated};
	
	final static IAstExpression uninitialized = IAstValue.uninitialized;
	
	double evaluate();
	boolean isUnknown();
		
	ValueationState getValueationState();
	
	IAstType getType();
}
